package com.ruoyi.clinic.mapper;

import java.util.List;

import com.ruoyi.clinic.domain.ClinicOrgInfo;
import com.ruoyi.clinic.dto.clinicorg.ClinicOrgReqDTO;
import com.ruoyi.clinic.dto.clinicorg.ClinicOrgResDTO;
import org.apache.ibatis.annotations.Param;

/**
 * 机构信息Mapper接口
 *
 * @author zhangjinfei
 * @date 2025-11-22
 */
public interface ClinicOrgInfoMapper {
    /**
     * 查询机构信息
     *
     * @param orgId 机构信息主键
     * @return 机构信息
     */
    public ClinicOrgInfo selectClinicOrgInfoByOrgId(Long orgId);

    /**
     * 查询机构信息列表
     *
     * @param clinicOrgInfo 机构信息
     * @return 机构信息集合
     */
    public List<ClinicOrgInfo> selectClinicOrgInfoList(ClinicOrgInfo clinicOrgInfo);

    /**
     * 根据机构名称查询
     *
     * @param orgName 机构名称
     * @return 列表
     */
    List<ClinicOrgInfo> selectClinicOrgInfoListByOrgName(@Param("orgName") String orgName);

    /**
     * 根据机构名称集合查询
     *
     * @param orgNameList 机构名称列表
     * @return 列表
     */
    List<ClinicOrgInfo> selectClinicOrgInfoListByOrgNames(@Param("list") List<String> orgNameList);

    /**
     * 查询机构列表
     *
     * @param dto 前端参数
     * @return 集合
     */
    List<ClinicOrgResDTO> queryPageList(ClinicOrgReqDTO dto);

    /**
     * 查询我负责的机构
     *
     * @param dto 前端参数
     * @return 集合
     */
    List<ClinicOrgResDTO> queryMyOrgPageList(ClinicOrgReqDTO dto);

    /**
     * 新增机构信息
     *
     * @param clinicOrgInfo 机构信息
     * @return 结果
     */
    public int insertClinicOrgInfo(ClinicOrgInfo clinicOrgInfo);

    /**
     * 修改机构信息
     *
     * @param clinicOrgInfo 机构信息
     * @return 结果
     */
    public int updateClinicOrgInfo(ClinicOrgInfo clinicOrgInfo);

    /**
     * 删除机构信息
     *
     * @param orgId 机构信息主键
     * @return 结果
     */
    public int deleteClinicOrgInfoByOrgId(Long orgId);

    /**
     * 批量删除机构信息
     *
     * @param orgIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteClinicOrgInfoByOrgIds(String[] orgIds);
}
